Mining Continuous Code Changes to Detect Frequent Program Transformations

نویسندگان

  • Stas Negara
  • Mihai Codoban
  • Danny Dig
  • Ralph E. Johnson
چکیده

Identifying repetitive code changes benefits developers, tool builders, and researchers. Tool builders can automate the popular code changes, thus improving the productivity of developers. Researchers would better understand the practice of code evolution, advancing existing code assistance tools even further. Developers would particularly benefit if such tools can learn and support repetitive code changes that are in progress. Unfortunately, the existing tools that aim at detecting frequent code change patterns predominantly focus on analyzing the static source code of an application rather than dynamic code changes, and thus, they can not learn from the changes on-the-fly. We present the first approach that identifies previously unknown frequent code change patterns from a continuous sequence of code changes. Our novel algorithm effectively handles two major challenges that distinguish continuous code change pattern mining from the existing data mining techniques: overlapping transactions and transactions containing multiple instances of the same item kind. We evaluated our algorithm on 1,520 hours of code development collected from 23 developers, and showed that it is effective, useful, and scales to big amounts of data. We analyzed some of the mined code change patterns and discovered ten popular kinds of high level program transformations.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Safe Composition of Refactoring Feature Modules

Programs can be composed by successively applying transformations that add features to a code base. These transformations must apply without errors but we cannot test every combination of them. We must detect errors automatically to encapsulate single transformations and scale them. Prior work focused on transformations that monotonically add code in order to produce program variants. We genera...

متن کامل

Concept Shift Detection for Frequent Itemsets from Sliding Windows over Data Streams

In a mobile business collaboration environment, frequent itemsets analysis will discover the noticeable associated events and data to provide important information of user behaviors. Many algorithms have been proposed for mining frequent itemsets over data streams. However, in many practical situations where the data arrival rate is very high, continuous mining the data sets within a sliding wi...

متن کامل

The "Extract Refactoring" Refactoring

There is a gap between refactoring tools and generalpurpose program transformation tools that has yet to be filled. Refactoring tools are easy to use and wellestablished, but provide only a limited number of options. On the other hand, program transformation tools are powerful but are viable only for large transformation tasks. We propose an approach in which a developer specifies transformatio...

متن کامل

A Static Analyzer for Model Transformations

Adoption of the Model-Driven Architecture approach is increasing each day. As any other software development project, a MDA-based project is constantly evolving given that software requirements change along their lifecycle. Thus, changes in MDA transformations are also frequent. These changes are hard and error-prone tasks when manually accomplished. We propose a static analyzer for inspecting ...

متن کامل

Towards Maintenance Support for Idiom-based Code Using Sequential Pattern Mining

Developers often use an idiom to implement a concern. When a fault is found in an idiom, developers have to find all source code fragments derived from the original. While code-clone detection tools can detect copy-andpasted code, such tools cannot detect code fragments modified after pasted. We are investigating a sequential pattern mining approach to capture idiom-based code that spread acros...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2013